Python 3: Guida tascabile al linguaggio di Google, Star Wars e la NASA (Pocket) (Italian Edition) by Marco Beri

Python 3: Guida tascabile al linguaggio di Google, Star Wars e la NASA (Pocket) (Italian Edition) by Marco Beri

autore:Marco Beri [Beri, Marco]
La lingua: ita
Format: epub
Amazon: B006DXC91Q
editore: Apogeo
pubblicato: 2010-05-05T00:00:00+00:00


I metodi privati

In Python esiste il concetto di metodo o attributo privato presente in altri linguaggi di programmazione, per esempio in C++ e in Java: un metodo o un attributo privato non può essere richiamato dall’esterno della classe cui appartiene.

Ma a differenza di altri linguaggi di programmazione, per ottenere questa “privacy” non abbiamo a disposizione una parola chiave ma solo una convenzione di denominazione (in inglese naming convention). Un metodo o un attributo privato deve iniziare (ma non terminare!) con una sequenza di due caratteri underscore “__”.

Proviamo ora a creare una classe con un metodo privato:

>>> class Archivio:

def __apri_file(self):

print “io sono nascosto”

>>>

Creiamo un’istanza e proviamo ad usare il metodo privato della classe:

>>> arc = Archivio()

>>> arc.__apri_file()

Traceback (most recent call last):

File “<pyshell#55>”, line 1, in <module>

arc.__apri_file()

AttributeError: Archivio instance has no attribute

‘__apri_file’

>>>

Come vediamo, Python si è rifiutato di eseguire il metodo che avevamo definito, rispettando la convenzione che lo rende privato.

Proviamo ora a eseguire dir sulla classe Archivio:

>>> dir(Archivio)

[‘_Archivio__apri_file’, ‘__doc__’, ‘__module__’]

>>>

Il metodo __apri_file ha subito un’operazione che in inglese viene definita name mangling, espressione traducibile come “storpiatura” dei nomi.

Qui vediamo all’opera un altro degli aspetti caratteristici di Python: il linguaggio è stato creato per facilitare la vita di chi scrive programmi e, anche in questo caso, lo fa nel modo migliore.

Infatti, se, per qualsiasi motivo, volessimo a ogni costo e a nostro rischio e pericolo accedere a un metodo che avevamo definito come privato, lo possiamo fare:

>>> arc = Archivio()

>>> arc._Archivio__apri_file()

io sono nascosto

>>>



scaricare



Disconoscimento:
Questo sito non memorizza alcun file sul suo server. Abbiamo solo indice e link                                                  contenuto fornito da altri siti. Contatta i fornitori di contenuti per rimuovere eventuali contenuti di copyright e inviaci un'email. Cancelleremo immediatamente i collegamenti o il contenuto pertinenti.
Ebooks popolari
Designing Mobile Interfaces by Steven Hoober & Eric Berkman(2295)
Mobile HTML5 by Estelle Weyl(2272)
Hello World by Hannah Fry(2073)
La Sicurezza Informatica. Tra informatica, matematica e diritto (Italian Edition) by Francesca Cirini(2046)
Il Manuale Di Arduino by Maik Schmidt(1851)
Linux server per l'amministratore di rete: per Ubuntu, CentOS e Fedora (Italian Edition) by Silvio Umberto Zanzi(1584)
Nel paese degli algoritmi by Aurélie Jean(1566)
Esercizi Di Stile by Unknown(1432)
Sviluppare in PHP 7: Realizzare applicazioni web e API professionali (Italian Edition) by Enrico Zimuel(1168)
E-LEARNING by E-learning(1164)
PYTHON : Il manuale per imparare a programmare. Contiene esempi di codice ed esercizi pratici. (Italian Edition) by Frost Oscar R(1159)
Automatizzare le cose noiose con Python: Programmazione pratica per principianti assoluti (Italian Edition) by Sweigart Al(1132)
Tutto Mac for dummies: iPhone, iPad, MacBook, iCloud e molto altro by Simone Gambirasio(1123)
Novacene by James Lovelock(1114)
9 algoritmi che hanno cambiato il futuro by MacCormick John(1046)
Amazon by Sconosciuto(1014)
Comprendere gli Algoritmi e i diagrammi di flusso passo-passo: Esempi con ausili grafici e tabellari, esercizi e codifica in linguaggio C (Italian Edition) by Luciano Manelli(1012)
On Writing by Stephen King(1009)
WEB DEVELOPMENT: La guida completa allo sviluppo web lato client. Impara a programmare con esercizi pratici ed esempi di codice. Include HTML, CSS, PHP, PYTHON, MySQL (Italian Edition) by Ferrati Alberto(991)
Programmare con Python. Guida completa by Marco Buttu(973)